{{/* Workaround Hugo concurrency issues (e.g. not detecting Page.Store variables) */}}
{{/* Use cases: Page.Store use within shortcodes, blox, and backlinks. */}}
{{/* See https://discourse.gohugo.io/t/persisting-data-across-the-build-of-a-site/41114/6 */}}
{{- range $page := site.AllPages }}
  {{- $noop := .Content }}
  {{ if eq .Type "landing" }}
    {{ range $index, $block := .Params.sections }}
      {{/* Do not show sections intended only for the demo site. */}}
      {{ if or (not $block.demo) ($block.demo | and (eq (os.Getenv "HUGO_BLOX_DEMO") "true")) }}
        {{ $block_type := lower ($block.blox | default $block.block) | default "markdown" }}
        {{ range $r := site.Data.blox_aliases.renames }}
          {{ $block_type = cond (eq $block_type $r.old) $r.new $block_type }}
        {{ end }}
        {{ $widget_config_file := printf "blox/%s--CONFIG.html" $block_type }}
        {{ if templates.Exists (printf "partials/%s" $widget_config_file) }}
          {{/* warnf "Loading blox config at %s" $widget_config_file */}}
          {{ $hash_id := $block.id | default (printf "section-%s" (replace $block_type "." "-")) }}
          {{ $widget_args := dict "wcPage" $page "wcBlock" $block "wcIdentifier" $hash_id }}
          {{ partial $widget_config_file $widget_args }}
        {{end}}
      {{ end }}
    {{ end }}
  {{- end -}}
{{- end -}}
